package com.pipe.protocol.events.table.reader;

import com.pipe.exception.ColumnReaderException;
import io.netty.buffer.ByteBuf;

/**
 * @author Kiven
 */
public interface ColumnReader<T> {

    /**
     *
     * 从row所属的数据流中读取符合java数据类型的对象
     *
     * @param byteBuf netty的bytebuf
     * @param readLength 需要读取的数据长度,这个会提前给出来,但不一定每次都有，主要针对读取varchar类型
     * @return
     * @throws ColumnReaderException
     */
    T read(ByteBuf byteBuf, int readLength) throws ColumnReaderException;
}